package wef.PW.utils;

/**
 * 报文解析工具
 */
public class RewardUtils {

    /**
     * 可变及结构限定词解析 返回信息体个数 8A --> 10
     *
     * @param str
     * @return
     */
    public static int VsqUtils(String str) {
        int num = StrUtils.hexStrToInt(str);
        if (num > 128)
            num = num - 128;
        return num;
    }

    /**
     * 可变及结构限定词包装信息体个数 10 --> 8A
     *
     * @param num 传入信息体个数
     * @return 返回转换过的信息体个数
     */
    public static String VsqUtils(int num) {
        num = num + 128;
        String str = Integer.toHexString(num);
        str = StrUtils.strPolish(str, 2);//补齐位数
        return str;
    }

    /**
     * 传入测量值字符串返回 int 类型  E803 --> 1000
     * @param value
     * @return
     */
    public static int getValue(String value){

        value = StrUtils.strFlip(value);
        int Value = Integer.parseInt(value, 16);
        return Value;
    }

    /**
     * 获取发送序号的二进制字符串
     * @param sendNum
     * @return
     */
    public static String getNum(int sendNum){
        String sendNumBinary = Integer.toBinaryString(sendNum) + "0";
        return StrUtils.strFlip(StrUtils.strPolish(Integer.toHexString(Integer.parseInt(sendNumBinary, 2)), 4));
    }
}
